package com.quanyan.sys.service;

import com.quanyan.api.APIResponse;
import com.quanyan.common.Plugin.PageObj;
import com.quanyan.sys.entity.Dict;

import java.util.List;

/**
 * 字典表维护Service
 * Created by songzj on 16/4/25.
 */
public interface DictService {

    /**
     * 组织机构
     */
    String SYS_ORG_TYPE = "SYS_ORG_TYPE"; // 类型
    String SYS_ORG_PROP = "SYS_ORG_PROP"; // 属性


    /**
     * 系统
     */


    /**
     * 性别
     */
    String SYS_SEX = "SYS_SEX"; //性别



    /**
     * 添加一个字典
     *
     * @param dict
     * @return
     */
    APIResponse insert(Dict dict);

    /**
     * 根据ID修改字典.
     *
     * @param dict
     * @return
     */
    APIResponse update(Dict dict);

    /**
     * 启用
     *
     * @param id
     * @return
     */
    APIResponse updateDictEnable(Integer id);


    /**
     * 禁用
     *
     * @param id
     * @return
     */
    APIResponse updateDictDisable(Integer id);

    /**
     * 删除
     *
     * @param id
     * @return
     */
    APIResponse deleteDict(Integer id);


    /**
     * 根据ID获取字典实例
     *
     * @param id
     * @return
     */
    APIResponse<Dict> get(Integer id);


    /**
     * 根据KEY获取字典实例
     *
     * @param key
     * @return
     */
    APIResponse<Dict> get(String key);

    /**
     * 根据Key获取类目及其子类目
     * @param key
     * @param pageNum
     * @param size
     * @return
     */
    APIResponse<PageObj<List<Dict>>> selectDictsByKey(String key, int pageNum, int size);


    /**
     *
     * @param example
     * @param pageNum
     * @param size
     * @return
     */
    APIResponse<PageObj<List<Dict>>> selectDictsByExample(Dict example, int pageNum, int size);

}
